package com.ilide.msgManage.utils;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.lang.reflect.Type;


/**
 * Linux上不设置日期环境的话，默认解析方式与windows上不同
 * 这里统一设置获取解析日期格式为yyyy-MM-dd HH:mm:ss的形式
 * <br>
 * <b>2018-06-20</b>
 *
 * @author zhangzh
 */
public class GsonUtil {

    private static final String PRETTY_DATA_FORMAT = "yyyy-MM-dd HH:mm:ss";

    public static Gson getDateFormatGson() {

        return new GsonBuilder().setDateFormat(PRETTY_DATA_FORMAT).create();
    }

    /**
     * 根据json字符串解析对象(不带解密)
     */
    public static <T> T fromJson(String json, Class<T> c) {
        Gson gson = getDateFormatGson();
        return gson.fromJson(json, c);
    }

    /**
     * 根据json字符串解析对象(不带解密,第二个参数是Type，适用于泛型类型的返回类型...)
     */
    public static <T> T fromJson(String json, Type type) {
        Gson gson = getDateFormatGson();
        return gson.fromJson(json, type);
    }

    /**
     * 根据对象解析成json字符串
     *
     * @throws Exception
     */
    public static String toJson(Object obj) {
        Gson gson = getDateFormatGson();
        return gson.toJson(obj);
    }

    public static void main(String[] args) {
    }
}
